#ifndef MENUBAIXO_H
#define MENUBAIXO_H

#include <QGraphicsRectItem>
#include "telaobjetivo.h"
#include <QPushButton>
#include <QGraphicsProxyWidget>

class MenuBaixo : public QObject, public QGraphicsRectItem
{

    Q_OBJECT

public:
    MenuBaixo(QGraphicsScene* scene);
    void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget);
    QGraphicsPixmapItem* icone_carta;
    QGraphicsPixmapItem* icone_objetivo;
    QString nome_participante;
    QString objetivo;
    TelaObjetivo* tela_objetivo;
    QPushButton* finalizar_alocacao_soldados;
    QGraphicsProxyWidget* proxy_widget;
    QPushButton* passar_vez;
    QGraphicsProxyWidget* proxy_passar_vez;

protected:

    void mousePressEvent(QGraphicsSceneMouseEvent* event);

public slots:

    inline void novoObjetivo (QString objetivo)
    {
        this->objetivo = objetivo;
        this->tela_objetivo->alterarObjetivo(this->objetivo);
        this->mostrar_objetivo = true;
    }
    void tropasRecebidas (int novas_tropas);
    void mostrarBotao ();
    void esconderBotao ();
    void mostrarPassarVez ();
    void esconderPassarVez ();
    void soldadosAlterados (int tropas_alteradas);
    void alocacaoConfirmada ();
    inline void atualizarMenu () { this->update(); }
    void checarObjetivo ();

signals:

    void mensagemChecarObjetivo (QString texto);

private:

    bool tropas_nao_alocadas;
    int tropas_restantes;
    bool mostrar_objetivo;

};

#endif // MENUBAIXO_H
